package aceim.app.preference;
import aceim.app.Constants.OptionKey;
import aceim.app.R;
import aceim.app.widgets.preference.EditablePasswordPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceScreen;
public abstract class OptionsPage extends OptionsFragment {
public OptionsPage(int xmlId, String sharedPreferencesName) {
super(xmlId, sharedPreferencesName);
}
protected void onPreferenceAttached(PreferenceScreen root, int xmlId, OptionKey[] keys) {
for (OptionKey k : keys) {
Preference p = findPreference(k.getStringKey());
if (p != null) {
p.setOnPreferenceClickListener(this);
p.setOnPreferenceChangeListener(this);
if (p instanceof ListPreference) {
ListPreference listPref = (ListPreference) p;
p.setSummary(listPref.getEntry());
} else if (p instanceof EditablePasswordPreference) {
EditablePasswordPreference ePref = (EditablePasswordPreference) p;
p.setSummary(ePref.getText() != null && ePref.getText().length() > 0 ? R.string.yes : R.string.no);
}
}
}
}
@Override
public boolean onPreferenceClick(Preference preference) {
return false;
}
@Override
public boolean onPreferenceChange(Preference p, Object newValue) {
if (p instanceof ListPreference) {
ListPreference listPref = (ListPreference) p;
p.setSummary(listPref.getEntry());
}
return onPreferenceChangeInternal(p, newValue);
}
protected abstract boolean onPreferenceChangeInternal(Preference p, Object newValue);
}